這章節教大家把製作完成的docker image給push上自己的registry,我們會以docker hub 以及github為例,因為這兩個registry相對難度較低,且有提供免費方案給使用者進行side project開發與練習。
go to https://hub.docker.com/
Sign up a docker Id with the email of your github.
登入後請點選 Create Repository,並創建一個docker repository(建議選用前面練習時所創建的image名稱。)
docker push /:
創建好hub後,請將先前練習的docker image改名為上面push command的形式
$ docker tag ironman:latest ghjjhg567/ironman:latest
在本機登入你的hub account,並push image至你的hub上
$ docker login
$ docker push ghjjhg567/ironman:latest
The push refers to repository [docker.io/ghjjhg567/ironman]
34877f5982a5: Layer already exists
4baa862b43b4: Layer already exists
077e55bf1234: Layer already exists
f6ff27009601: Pushed
c64e397c459d: Layer already exists
5dcc42e3e97b: Layer already exists
28ba7458d04b: Layer already exists
838a37a24627: Layer already exists
a6ebef4a95c3: Layer already exists
b7f7d2967507: Layer already exists
latest: digest: sha256:867ebc8311eccd77994a7301cd4af55d3f36eed9e25f5a30f7ce0c5719faece6 size: 2410
之後到hub上確認是否有將image成功push上去。
點選Repository/Builds
之後請選擇該專案的repository,並在下方BUILD RULES進行調整。
當你想要在你build新image時,收到通知的話,請至Account settings/Notifications進行設定。
目前hub提供寄信以及sync SLACK功能給使用者使用。
最後就能push一個新的commit至上面所設定的branch,看docker hub的auto build有沒有執行以及Notifications有沒有寄信。
這邊先假設大家都有自己的github帳號了,沒有的人在自行去創建。
docker login docker.pkg.github.com -u -p
docker login docker.pkg.github.com -u -p
這邊比較建議使用token,原因是建立token時能夠自行設定權限,即使被盜取token,駭客能做的事也比較有限。
docker tag docker.pkg.github.com///:
$ docker tag ghjjhg567/ironman:latest docker.pkg.github.com/neskem/ironman_2020/ironman:latest
注意一下,這邊與docker hub較為不同地方在於,github registry需要加上repoistory的名稱!
docker push docker.pkg.github.com///:
$ docker push docker.pkg.github.com/neskem/ironman_2020/ironman:latest
The push refers to repository [docker.pkg.github.com/neskem/ironman_2020/ironman]
34877f5982a5: Pushed
4baa862b43b4: Pushed
077e55bf1234: Pushed
f6ff27009601: Pushed
c64e397c459d: Pushed
5dcc42e3e97b: Pushed
28ba7458d04b: Pushed
838a37a24627: Pushed
a6ebef4a95c3: Pushed
b7f7d2967507: Pushed
latest: digest: sha256:babe811cf46948c3c9fee1030fb7eb81b999222eb5a8fe5dbb4eb38abea378fa size: 2410
docker pull docker.pkg.github.com///:
Push成功後,你能到你的github repository的右下角看到一個packages的小鯨魚
點進去後能看到該repository下所有的images
點選指定image也會提供你相關資訊
這次介紹給大家兩個常見而且免費(有資源限制)的registry給大家認識,讓大家能夠透過這兩個registry來練習或是存放自己的image!
https://docs.github.com/en/actions/guides/publishing-docker-images